package {{.table.PackageName}}.service;

import java.util.List;
import com.baomidou.mybatisplus.plugins.Page;
import com.lesso.common.model.ServiceResultModel;
import com.lesso.common.model.ResultServiceModel;
import {{.table.PackageName}}.model.{{.table.ClassName}};
import {{.table.PackageName}}.model.vo.{{.table.ClassName}}VO;
import {{.table.PackageName}}.model.dto.{{.table.ClassName}}DTO;
import top.ibase4j.core.base.IBaseService;
import top.ibase4j.core.exception.ServiceException;
import top.ibase4j.model.Pagination;

import java.util.List;
import java.util.Map;


/**
 * {{.table.FunctionName}}Service接口
 * 
 * @author {{.table.FunctionAuthor}}
 * @since {{.table.CreateTime}}
 */
public interface I{{.table.ClassName}}Service extends IBaseService<{{.table.ClassName}}>{
     /**
      * 分页查询
      *
      * @param pagination 查询条件
      * @return
     */
    Page<{{.table.ClassName}}VO> getPageList(Pagination<{{.table.ClassName}}DTO> pagination) throws ServiceException;


    /**
    * 查询{{.table.FunctionName}}列表
    *
    * @param {{ .table.ClassName |CaseCamelLower}} {{.table.FunctionName}}
    * @return {{.table.FunctionName}}集合
    */
    List<{{.table.ClassName}}VO> getList({{.table.ClassName}} {{ .table.ClassName |CaseCamelLower}}) throws ServiceException;


     /**
      * 查询{{.table.FunctionName}}详情
      *
      * @param id id
      * @return {{.table.FunctionName}}
     */
     ServiceResultModel<{{.table.ClassName}}VO> getById({{.table.PkColumn.JavaType}} id) throws ServiceException;

    /**
     * 添加{{.table.FunctionName}}
     * @param model {{.table.FunctionName}}信息
     * @return result
     * @throws ServiceException
    */
    ServiceResultModel add({{.table.ClassName}} model) throws ServiceException;

    /**
     * 修改{{.table.FunctionName}}
     * @param model {{.table.FunctionName}}信息
     * @return result
     * @throws ServiceException
    */
    ServiceResultModel modify({{.table.ClassName}} model) throws ServiceException;


    /**
     * 删除{{.table.FunctionName}}记录
     * @param id  {{.table.FunctionName}}ID
     * @return result
    */
    ServiceResultModel delete({{.table.PkColumn.JavaType}} id);
    /**
     * 批量删除{{.table.FunctionName}}记录
     * 
     * @param ids 需要删除的{{.table.FunctionName}}主键集合
     * @return result
     */
     ServiceResultModel batchDelete(List<{{.table.PkColumn.JavaType}}> ids);

     /**
      * 批量禁用{{.table.FunctionName}}记录
      *
      * @param ids 需要启用的{{.table.FunctionName}}主键集合
      * @return result
     */
     ServiceResultModel batchDisabled(List<{{.table.PkColumn.JavaType}}> ids);

     /**
      * 批量启用{{.table.FunctionName}}记录
      *
      * @param ids 需要启用的{{.table.FunctionName}}主键集合
      * @return result
     */
     ServiceResultModel batchEnabled(List<{{.table.PkColumn.JavaType}}> ids);

}